As is known in the art, volume rendering is a method which projects an image provided by three-dimensional volumetric data on a two-dimensional plane. Volume rendering is an important technique for visualizing and analyzing three-dimensional data. It is widely used in for instance medical applications for visualizing data that have been obtained by for instance MRI and CT methods.
As is also known in the art, texture-based volume rendering is typically a lengthy process. If necessary, the rendering is done at lower quality level during user interaction, and then a higher quality rendering is performed to generate the final image once the interaction is stopped. When rendering a high resolution image of a large dataset, the waiting time for the final image could be quite long. Therefore, it is more user friendly to display partially rendered final image so that user can observe the progress of refinement. The user has more information to decide whether the current viewing parameters are good enough for his/her purpose, and he/she may stop the rendering and start interaction again.
In texture-based volume rendering, however, the rendering is done in brick level. A brick contains a sub-volume of the dataset. For example, reference is made to a simplified example in FIG. 1. Here a 3D volume of voxels is shown having four bricks A, B, C and D. Each brick here for simplicity has 196 voxels. FIGS. 2a-2d shown the step by step 2D rendering using the 3D voxel set in the first brick A, then the 2D rendering using the 3D voxel set in the second brick B, then the 2D rendering using the 3D voxel set in the third brick D; and finally the 2D rendering using the 3D voxel set in the first brick D in FIGS. 2a, 2b, 2c and 2d, respectively. Applying the rending brick-by-brick allows the renderer to skip invisible bricks to gain acceleration. More importantly, partition of a large dataset into bricks enables the rendering of dataset larger than the graphics memory. To display the intermediate image with some visible bricks not rendered, however, may give the user false illusion of the structure of the dataset, hence is not advisable, particularly for medical applications.
In accordance with the present invention, a method is provided for rendering a two-dimensional image. The method includes: (a) obtaining a first three-dimensional set of data for a relatively high quality image; (b) generating a second three-dimensional set of data for a relatively low quality image from the obtained three-dimensional set of data; (c) rendering a relatively low quality two-dimensional image from second three-dimensional set of data; (d) rendering a first portion of a relatively high quality two-dimensional image from a first portion of the first three-dimensional set of data; (e) blending the rendered low quality two-dimensional image from second three-dimensional set of data with relatively high quality two-dimensional image from the first portion of the first three-dimensional set of data; (f) rendering a second portion of a relatively high quality two-dimensional image from a different portion of the first three-dimensional set of data; and (g) blending the rendered low quality two-dimensional image from second three-dimensional set of data with relatively high quality two-dimensional image from the second portion of the first three-dimensional set of data. The process returns to (f) until the entire image is rendered into two dimensions.
With such method, a progressive refinement approach is provided that is suitable for brick-by-brick texture-based rendering. The method presents a sequence of blending between a low quality image and the final high quality image and then to display a smooth transition from low quality to high quality images and hide the boundary of the bricks. The blending is a function of the current percentage of completeness of the final image, the pixel completeness, and the difference in color of the same pixels in the different images.
With such method, texture-based volume rendering is achieved using a progressive refinement approach. The method blends low-quality and partially completed high-quality images. The blending function considers various pixel properties, such as image completeness, pixel completeness, and color difference. It ensures smooth transition of pixel colors as well as hides the blocky effects which is inherent in the partially rendered images with the brick-by-brick rendering order.
The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims.
Like reference symbols in the various drawings indicate like elements.